布尔赋值运算符

  使用布尔赋值运算符可以把布尔比较与赋值组合起来,其方式与第3章中的数学赋值运算符(+=*=等)相同。布尔赋值运算符 如表 4-4 所示

表4-4 布尔赋值运算符

运算符 类别 示例表达式 结果
&= Binary var1 &= var2; var1 的值是 var1 & var2 的结果
|= Binary var1 |= var2; var1 的值是 var1 | var2 的结果
^= Binary var1 ^= var2; var1 的值是 var1 ^ var2 的结果

  这些运算符处理布尔值和数值的方式与 &|^ 相同。

  &=|= 赋值运算符并不使用 &&|| 条件布尔运算符,即无论赋值运算符左边的值是什么,都处理所有操作数。

在下面的示例中,用户键入一个整数,然后代码使用该整数执行各种布尔运算。 将以下代码添加到 Program.cs 中:

        static void Main(string[] args)
        {
            Console.WriteLine("Enter an integer:");
            int myInt = Convert.ToInt32(Console.ReadLine());
            bool isLessThan10 = myInt < 10;
            bool isBetween0And5 = (0 <= myInt) && (myInt <= 5);
            Console.WriteLine("Integer less than 10? {0}", isLessThan10);

            Console.WriteLine("Integer between 0 and 5? {0}", isBetween0And5);
            Console.WriteLine("Exactly one of the above is true? {0}", isLessThan10 ^ isBetween0And5);

            Console.ReadKey();
        }

  示例的说明

  前两行代码使用前面介绍的技术,提示并接受一个整数值:

        Console.WriteLine("Enter an integer:");
        int myInt = Convert.ToInt32(Console.ReadLine());

  使用 Convert.ToInt32() 从字符串输入中得到一个整数。Convert.ToInt32() 是另一个类型转换命令,与前面使用的 Convert.ToDouble() 命令属于同一系列。

  接着声明两个布尔变量 isLessThan10isBetween0And5,并赋值,其中的逻辑匹配其名称中的描述:

        bool isLessThan10 = myInt < 10;
        bool isBetween0And5 = (0 <= myInt) && (myInt <= 5);

  接着在下面的3行代码中使用这些变量,前两行代码输出它们的值,第3行对它们执行一个操作,并输出结果。在执行这段代码时,假定用户输入了7。

  第一个输出是操作 myInt < 10 的结果。如果 myInt 是 7,则它小于 10,因此结果为 true。如果 MyInt 的值是 10 或更大,就会得到 false

  第二个输出涉及较多计算:(0 <= myInt) && (myInt <= 5),其中包含两个比较操作,用于确定 myInt 是否大于或等于0,且小于或等于 5。接着对结果进行布尔 AND 操作。输入数字 7,则 (0 <= myInt) 返回 true,而 (myInt <= 5) 返回 false,最终结果就是 (true) && (false),即 false

  最后,对两个布尔变量 isLessThan10isBetween0And5 执行逻辑异或操作。如果一个变量的值是 true,另一个是 false,则代码返回 true,所以只有 myInt 是 6、7、8或 9,才返回 true,本例输入的是 7,所以结果是 true

🔚